메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

아파치 2.0 설치하기

한빛미디어

|

2001-07-02

|

by HANBIT

9,240

by 라이언 블룸(Ryan Bloom), 역 한빛 리포터 1기 이호재 편집자 주: 라이언 블룸(Ryan Bloom)은 아파치 2.0의 핵심 개발자 중의 한 명이다. 우리는 그를 작년 1월 뉴욕에서 열린 리눅스 월드의 Covalent 부스에서 만나, 네트워크 독자들을 위해 아파치 새 버전에 대해 설명해 달라고 요청했다. 이 기사는 그의 첫 기사로, 아파치 2.0의 새로운 기능과 설치하는 방법을 다룬다. 아파치 개발자들은 지난 2년 동안 아파치 2.0을 개발했으며, 4월 4일 처음으로 아파치 2.0의 공개 베타버전을 발표했다. 이 글에서는 아파치 2.0과 1.3의 차이점을 설명하고, 아파치 사용자들이 주의해야 할 점을 다룰 것이다. 왜 업그레이드 해야 하는가? 가장 중요한 변경 사항은 아파치 2.0에서의 멀티스레드 지원이다. 1.3버전은 사용자의 요청에 답하기 위해 프로세스에 의존했고 이는 많은 운영체제에서 성능의 한계를 가져왔다. 프로세스와 결합된 스레드로 아파치 2.0은 더욱 확장가능하게 되었다. 아파치 1.3과 비교할 때 둘째 장점은 여과된(filtered) 입출력(I/O)이다. 이로써 한 모듈이 다른 모듈의 출력결과를 수정할 수 있다. 아파치 1.3에 추가되었으면 하는 기능 중의 하나는 CGI 스크립트가 SSI 태그를 출력할 수 있게 하는 것이었다. 이는 1.3 버전에서는 불가능했지만, 여과된 입출력으로 아파치 2.0에서는 가능하다. ***** 아파치의 새로운 버전 전략 3월 28일 수요일, 아파치 그룹은 아파치 2.0.15를 알파버전으로 발표하였다. 이는 새로운 버전 전략을 이용한 아파치 2.0의 두 번째 발표이다. 이전 버전에서는 알파버전, 베타버전, 안정 버전을 차례로 발표했기 때문에 1.3.0, 1.3.1, 1.3.2 등의 모든 버전이 아파치의 발표 버전으로 인식되었다. 이는 아파치 그룹이 알파, 베타버전을 거쳐 발표하지 않고 안정 버전을 발표하는 책임이 있다는 것을 의미한다. 아파치 2.0.14버전부터 시작하여, 아파치 그룹은 발표 전략을 변경하였다. 모든 발표 버전엔 숫자가 있고, 그 다음에 알파부터 시작되는 릴리즈를 나타내는 문자가 따라온다(역자주: httpd-2_0_18-alpha와 같은 형식이다). 이 버전을 사용하면 베타버전이나 안정 버전으로 업그레이드할 수 있으며, 발표된 아파치 버전의 질(quality)을 판단하기 전에 실제로 철저히 테스트 받을 수 있다. 이러한 방식은 대부분의 오픈 소스 소프트웨어 프로젝트가 발표되는 방식과는 매우 다르다. 사용자 측면에서 보자면, 다운로드한 알파버전이 그 다음날엔 베타 버전이 될 수 있음을 의미한다. ***** 아파치 2.0은 또한 코어의 변경 없이 SSL을 지원할 것이다. 현재는 최소한의 기능만 있지만 이미 mod_tls가 포함되어 있고, 얼마 후엔 SSL을 완벽하게 지원할 것으로 보인다. 아파치 2.0을 사용하기 위해 첫째로 해야 할 일은 설정과 설치이다. 아파치에는 컴파일시 설정과 실행시 설정 두 가지가 있다. 이 기사는 tar 압축된 아파치를 컴파일하고 설치하는 방법을 중점적으로 설명할 것이다. 아파치 2.0 설치와 설정 시작하기 전에 아파치 2.0 최신 버전을 다운로드한다. 안정적인 아파치 소스는 아파치 웹 서버 홈페이지에서 다운로드할 수 있다. 최신 개발버전을 다운로드하려는 개발자라면, 아파치 개발자 페이지에서 CVS로부터 소스코드를 가져오는 것을 읽기 바란다. 이 기사는 아파치 2.0.15 tar압축된 버전을 사용한다고 가정하고 서술한다(아파치의 후속 버전이 매우 비슷할지라도 말이다). tar압축된 소스가 있다면, 다음 명령으로 압축을 푼다.

tar -xvzf httpd-2*.tar.gz .
이제 아파치를 설정해야 한다. 이전 버전의 아파치에서는 아파치를 설정하는 데 두 가지 방법이 있었다. 두 가지 모두 아파치 그룹에서 사용하고 있다. 첫째 방법은 어떤 컴포넌트가 사용될지 결정하는 텍스트 파일을 사용하는 것이다. 둘째 방법은 autoconf와 비슷한 시스템으로, 실제로는 설정 텍스트 파일을 고치는 것이다. 아파치 2.0에서 아파치 개발자들은 설정 시스템을 만드는 것보다 웹 서버를 만드는 것에 더 집중하는 게 낫다고 판단했다. 그래서 아파치 2.0은 어떤 아파치의 컴포넌트가 설치될지를 결정할 때 autoconflibtool을 사용한다. 아파치 사이트에서 다운로드한 tar압축 파일에는 이 설정 스크립트가 생성되어 있다. 하지만 개발자 버전에는 ./buildconf로 설정 스크립트를 생성해 주어야 한다. 이는 아파치에서 필요한 모든 소프트웨어가 있는지 확인하기 위해 필요한 디렉토리를 검색한다. 이때 사용자는 아파치 2.0 디렉토리의 최상위 디렉토리에 설정 스크립트가 있어야 한다. 이는 실제로 아파치를 설정하는 스크립트이다. 설정 스크립트에는 사용자가 아파치가 어떻게 만들어질지 결정하는 많은 옵션이 있다. 설정의 모든 옵션은 다음과 같은 명령어를 실행하면 얻을 수 있다.

./configure --help
모든 옵션에 대해 설명하는 것은 이 기사의 범위를 넘어서기 때문에, 일반적이고 가장 유용한 몇몇 옵션들에 대해서만 살펴보자.
  • --prefix 아파치가 설치되는 장소를 지정
  • --with-maintainer-mode 디버깅 모드로 컴파일. 서버가 안정버전이 될 때까지는 중요한 옵션이다.
  • --with-mpm 어떤 멀티프로세싱 모듈(MPM)을 사용할 것인가를 지정. MPM은 아파치 2.0에 결합된 부분으로, 이에 대해 아래에 간략히 설명할 것이다. 자세한 정보는 온라인에서 볼 수 있다.
  • --enable_module 어떤 모듈이 아파치와 함께 컴파일될 것인가를 지정. 이는 모듈의 리스트일 수도 있고, 대부분의 경우 하드 코딩된 모듈 리스트를 설정하는 키워드일 수도 있다.
  • --enable-mods-shared 어떤 모듈이 공유 모듈로 컴파일될 것인가를 지정.
멀티프로세싱 모듈을 사용하면 아파치 2.0을 튜닝할 수 있다. 하지만 한 사이트나 운영체제에서는 작동해도 다른 곳에서는 작동하지 않을 수 있다. 이러한 문제를 해결하기 위해 시스템 관리자는 아파치 서버가 어떻게 작동할지를 결정해야 한다. 다른 운영체제보다 많은 옵션이 있는 운영체제가 있다. 예를 들면, 유닉스에는 3가지 MPM이 있다. Prefork -- 아파치 1.3과 동일한 모델. 부모 프로세스는 사용자의 요청에 응답할 준비가 되어 있는 여러 자식 프로세스를 생성한다. 각 자식 프로세스는 오직 한 개의 스레드를 가지며, 한번에 하나의 요청만을 처리할 수 있다. 서버가 더 이상 요청을 받아들일 수 없을 때에는 받을 수 있는 요청의 수를 늘리기 위해 새로운 자식 프로세스를 생성한다. Threaded -- 자식 프로세스가 고정된 수의 스레드를 가지고 있는 것을 제외하면 Prefork와 비슷하다. 고정된 수는 httpd.conf에서 지정한다. Perchild -- 부모 프로세스는 특정한 수의 자식 프로세스를 생성한다. 자식 프로세스는 최소한의 스레드를 가지고 있다. 서버가 더 이상 요청을 받아들일 수 없을 때에는 스레드 수를 늘린다. 반면 윈도우는 오직 한가지 옵션만을 지원한다. Winnt -- 아파치 1.3과 비슷한 모델. 두개의 프로세스가 있고, 부모 프로세스는 자식 프로세스를 감시하며, 요청에 응답하는 프로세스가 있는지 확인한다. 서버 컴파일하기 설정 스크립트를 실행한 다음엔 서버를 컴파일해야 한다. 이는 아파치 소스 디렉토리의 최상위 디렉토리에서 make를 실행하면 된다. 마지막 과정은 make install을 통해 새로운 서버를 실제로 설치하는 것이다. 이 명령은 설정 스크립트에서 --prefix 옵션으로 지정된 디렉토리로 실행파일과 그와 관련된 파일들을 복사한다. prefix가 지정되지 않으면, 기본값으로 /usr/local/apache가 사용된다. 이제 거의 끝났다. 설치가 성공적이었다면, 설치 디렉토리로 가서 ./bin/apachectl start라고 입력하면 된다. 하지만 어떤 포트를 사용할지를 결정해야 한다. 루트 사용자로 설치했다면, 아파치는 기본적인 HTTP 포트인 80번 포트를 사용할 것이고, 다른 유저로 아파치를 설치했다면 기본값으로 8080을 사용할 것이다. 이는 httpd.conf 파일 안의 Port 지시자를 수정하면 변경된다. 이제 사용자가 좋아하는 웹 브라우저를 실행하고 사용자의 포트에 따라 http://localhost/http://localhost:8080/ 페이지를 요청해 보자. 그러면 아파치 기본 웹 페이지를 볼 수 있을 것이다. 이 페이지가 나타나지 않는 경우에는 에러 로그가 무슨 일이 일어났는지 가르쳐 줄 것이다. 첫 아파치 2.0 웹 서버를 설치하였다. 이제는 페이지를 준비해야 한다. 하지만 이 서버가 아직 발표된 완벽한 제품이 아니므로, 버그가 있을 수 있다는 것을 기억하자. 버그를 발견하면, 아파치 버그 데이타베이스를 통해 알려 주기 바란다. 다음 기사에서는 아파치 1.3에서 2.0으로 업그레이드 하는 것과 실행시의 설정을 소개할 것이다.
라이언 블룸(Ryan Bloom)은 Apache Software Foundation의 멤버이며, Apache Portable Run-time 프로젝트의 부사장이다. 이호재님은 한빛 리포터 1기로 활동 중입니다. 카드코리아 개발 실장으로 근무한 경험이 있으며, 지금은 서울대 지구환경시스템공학부(컴퓨터 공학)에 다니고 있습니다. 컴퓨터에 관련된 모든 분야에 두루 관심이 많으며, 요즈음엔 파이썬, MPI, PHP 등에 관심이 많다고 합니다.
TAG :
댓글 입력
자료실

최근 본 책0